14 February 2019
В
01:29
Виталий
Здравствуйте, может у вас найдется немного времени? Я готов заплатить за задачу или хотя бы наводку на решение.
01:29
Могу прислать примеры сайтов, где видел подобную процедуру.
DE
01:40
Denis Efremov
Повторите пожалуйста
01:40
Условие
В
01:40
Виталий
Хочу отследить события, связанные с twitter на свое сайте, вот текущий код https://pastebin.com/LYy4nwSr, взятый отсюда. Как мне поймать событие лайка, к примеру?
01:42
Попробуйте код на своей стороне, там открывается пост, можно выбрать что-то другое для вставки, задача отследить ретвит, лайк и подписку, пусть это будет хоть обычная кнопка на сайте. У меня получается поймать просто нажатие на кнопку, но всплывает окно от твиттер, где нужно подтвердить действием нажатием на одну кнопку, после нажатия окно закрывается автоматически и вот этот момент нужно поймать.
DE
01:45
Denis Efremov
Это минифицированный код. Нормального нет?
В
01:46
Виталий
Все, что имеется, посмотрите эту страницу https://developer.twitter.com/en/docs/twitter-for-websites/javascript-api/guides/javascript-api, там рассказывается про методы
01:48
Вот пример как поймать подписку
DE
01:48
Denis Efremov
Слушайте, а вы разработчик?
В
01:48
Виталий
Я на python пишу, да
DE
01:48
Denis Efremov
А сам сайт ваш где?
В
01:49
Виталий
на сервере, там будет генериться страница для каждого юзера а после выполнения его перенаправит и отправлю ajax на сервер
DE
01:50
Denis Efremov
Ну надо это делать на сайте
В
01:50
Виталий
сам сайт не имеет значения, это просто страница с постом или кнопкой будет, мне нужен просто код
DE
01:51
Denis Efremov
Код зависит от того что будет на сайте.
01:51
Вам нужно привязаться к событию
01:51
Какому-нибудь
В
01:52
Виталий
от чего конкретно зависит? я фрик в js
DE
01:52
Denis Efremov
Если ваш код работает, то можно было бы чтобы туда не лезть привязаться к внешнему событию
01:53
Например появление модала в бутстрапе имеет событие
01:54
Вам лучше отдать это профессионалу
01:54
Как получилось что этим занимаетесь вы?
В
01:55
Виталий
Вы не специалист?
01:55
Это часть проекта, которым я занимаюсь, другие методы отбросил, остался только такой вариант обработки
DE
01:57
Denis Efremov
Я специалист. Но мне необходимо окружение чтобы сделать вам максимально быстро и чтоб вы потом это не сломали. Но я беру 25 в час. Если вас это устраивает, давайте быстро сделаем песочницу, созвонимся и по тимвьюверу я вам объясню.
01:58
Мое резюме в био
В
01:59
Виталий
Во сколько часов оцениваете задачу?
DE
01:59
Denis Efremov
Час
В
02:00
Виталий
То есть вы сейчас сможете приступить?
DE
02:00
Denis Efremov
Ваще меньше
02:00
Но придется вам объяснять и выйдет дольше. Я согласен сразу договориться на час
В
02:01
Виталий
Вообще ту же самую процедуру нужно будет повторить с fb и instagram.
DE
02:01
Denis Efremov
Значит нужно делать одну и ту же процедуру для всех
02:02
Меня больше заботит песочница
02:02
Вы сможете развернуть её
02:02
?
В
02:02
Виталий
В общем сейчас поясню как я делал
DE
02:02
Denis Efremov
Я же не знаю что у вас на сайте
02:03
Почему сразу на сайте не сделать?
В
02:05
Виталий
У меня в боте генерируются ссылки для каждого пользователя, вот простейший пример, тут юзер просматривает видео до конца (на самом деле можете просто перемотать) https://link.bitsocial.pro/youtube/d6AbDM7H2LY/39/208768221, его после просмотра перенаправляет и засчитывает задание. Сам домен висит на определенном порту с помощью nginx, на этом же порту запущено приложение flask, которое обрабатывает get запрос и генерит с его параметрами страницу с видео
02:06
Сайта как такового нет, просто отдельные страницы генерятся временные
02:07
Сейчас покажу пример кода с youtube
DE
02:07
Denis Efremov
Стойте
02:07
Так куда вам надо вклиниться?
02:08
Вы говорили про модал
02:09
Не видел там модала
В
02:10
Виталий
Возможно, я ошибаюсь, поправьте меня если что. Мне нужна просто html страница от вас. На ней будет то, что вам удобно - пост, просто кнопка подписки или что-то другое. В нее я буду передавать ссылку просто, на которую нужно подписаться или ссылка на пост, который нужно лайкнуть.
02:10
Нужно просто поймать событие как я это делаю с видео.
02:10
Такое возможно?
02:10
Я не помню, что я что-то говорил про модал)
02:11
In reply to this message
В этом примере событие нажатия на кнопку отслеживается.
02:12
Но мне нужно еще и закрытие окна поймать.
DE
02:13
Denis Efremov
Стоп
02:13
Не то пардон
02:14
Вы подключитесь?
В
02:14
Виталий
Сейчас, секунду, позакрываю миллион вкладок и посмотрю
02:15
Объясните пожалуйста, как с этим работать и на что эта ссылка?
DE
02:15
Denis Efremov
In reply to this message
Вот по этой ссфлке надо перейти
В
02:15
Виталий
Так
DE
02:16
Denis Efremov
Не вижу вас
В
02:16
Виталий
войти через гит нужно?
DE
02:16
Denis Efremov
Скорее всего
02:17
Вы видите кнопку подписаться?
В
02:17
Виталий
02:17
Сейчас войду
DE
02:18
Denis Efremov
DE
Denis Efremov 14.02.2019 02:13:14
DE
02:19
Denis Efremov
?????
02:19
Ну что?
В
02:19
Виталий
Минуту
DE
02:19
Denis Efremov
Вот видите кнопку?
В
02:19
Виталий
Да, увидео
DE
02:20
Denis Efremov
Такая кнопка? Что там еще?
В
02:20
Виталий
Чувствую себя идиотом) Вот такую страницу вижу http://prntscr.com/mksm64
DE
02:21
Denis Efremov
да
02:21
Что туда еще добавить?
02:21
Вы сказали вам нужна HTML страница
02:21
Я её делаю
В
02:22
Виталий
Так, сюда нужно вставлять кнопку твиттер
02:22
Сейчас покажу
02:22
<html>
<a href=http://twitter.com/directdialogs class="twitter-follow-button"
data-show-count="true">Follow@directdialogs</a>
<script type="text/javascript" charset="utf-8">
window.twttr = (function (d,s,id) {
var t, js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
js.src="//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
}(document, "script", "twitter-wjs"));
</script>
<script>
twttr.ready(function (twttr) {
twttr.events.bind('follow', function(e) {
alert("FOLLOW!")
});
});
</script>
</html>
DE
02:22
Denis Efremov
Можете прямо туда вставлять
В
02:23
Виталий
Как обновлять страницу?
02:24
Код я вставил
DE
02:25
Denis Efremov
Ну вот где alert(follew)
02:25
Это срабатывает после фолоу
В
02:25
Виталий
В том то и дело, что срабатывает не после фолоу, а после нажатия кнопки
DE
02:26
Denis Efremov
Вам надо как?
02:26
После фоллоу?
В
02:26
Виталий
Потом открывается страница с кнопкой фоллоу, мы ее жнем и окно должно закрыться и поймать уже это событие
DE
02:26
Denis Efremov
Так и происходит
02:27
Нажмите
В
02:27
Виталий
как мне там перезапустить страницу, у меня до сих пор кнопка подписаться
02:28
Вы не переживайте, я вам оплачу время, только сейчас нужно еще другие события посмотреть.
DE
02:28
Denis Efremov
ctrl + r
В
02:29
Виталий
верунлся прежний код
DE
02:29
Denis Efremov
02:29
Есть тим вьюер?
В
02:30
Виталий
Нет, могу быстро поставить
DE
02:40
Denis Efremov
Виталий
Outgoing (560 seconds)
В
02:40
Виталий
In reply to this message
Вот
02:40
Тут пост генерится, попробуйте поставить лайк и поймать событие
DE
02:42
Denis Efremov
У меня нет твиттера
В
02:42
Виталий
сейчас кину данные
DE
02:42
Denis Efremov
Вам нужен лайк или фоллоу
02:42
In reply to this message
Не надо
В
02:43
Виталий
нужен лайк, фоллоу и ретвит вообще, все эти кнопки и посты можно взять с сайта твиттера официально
02:43
ну хотя бы что-то одно для начала
02:53
есть какие-то мысли или пока изучаете?
DE
02:54
Denis Efremov
Да уже почти сделал
02:55
Видите?
02:55
Если не фолловить - то BAD
02:55
Если зафолловить то GOOD
В
02:56
Виталий
У меня антибаннер срабатывает, этого можно избежать или нет?
DE
02:56
Denis Efremov
Добавьте сайт в исключения
В
02:57
Виталий
У меня почему-то по нажатию на кнопку все время bad
DE
02:58
Denis Efremov
А вы точно фолловите?
02:59
Покажите вывод консоль лога
02:59
,
03:00
Через 10 мин уже полтора часа будет
В
03:00
Виталий
Откуда его показать?
DE
03:00
Denis Efremov
Из консоли конечно
В
03:01
Виталий
Я не понимаю, о чем вы. Денис, ну задача ведь не решена вообще.
DE
03:02
Denis Efremov
Консоль есть в браузере
В
03:02
Виталий
Там пусто
DE
03:02
Denis Efremov
Вам нужно зафолловить
03:03
И потом посмотреть
В
03:03
Виталий
Ладно, давайте утром закончим, я более внятно сформирую проблему и тз мелкое.
DE
03:03
Denis Efremov
В чем проблема?
03:04
Вы можете открыть консоль, зафолловить и сделать скриншот?
В
03:04
Виталий
Сейчас что происходит - разместил я код на локале у себя, открыл браузер, жму фоллоу, начинает открываться окно, закрывается, появляется bad, делаю фоллоу, ничего не происходит
03:04
Окно закрываю
03:04
Ничего не происходит
DE
03:04
Denis Efremov
Сделайте это в песочнице
03:05
А не говорил, что код готов и его можно переносить на локал
В
03:05
Виталий
абсолютно то же самое
03:05
под локал я имею ввиду просто мой компютер
DE
03:05
Denis Efremov
DE
Denis Efremov 14.02.2019 02:59:58
,
В
03:05
Виталий
логи пустые
DE
03:06
Denis Efremov
У вас есть этот код?
03:06
В красном квадрате?
В
03:08
Виталий
underfined
DE
03:10
Denis Efremov
03:10
Data приходит пустая
03:11
Это твиттера косяк либо CORS
03:11
Cross Origin Request Security
03:12
Вставьте этот код к себе на локал
03:12
И попробуйте
В
03:12
Виталий
Я вставил, то же самое
DE
03:12
Denis Efremov
<html>
<a href=http://twitter.com/directdialogs class="twitter-follow-button" data-show-count="true">Follow@directdialogs</a>
<a class="twitter-share-button" href="https://twitter.com/intent/tweet">Tweet</a>
<script type="text/javascript" charset="utf-8">
window.twttr = (function (d,s,id) {
var t, js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js=d.createElement(s);
js.id=id;
js.src="//platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
return window.twttr || (t = {
_e: [],
ready: function(f){ t._e.push(f) }
});
}(document, "script", "twitter-wjs"));

</script>
<script>
twttr.ready(function (twttr) {
twttr.events.bind(
'follow',
function (event) {
var followedUserId = event.data.user_id;
var followedScreenName = event.data.screen_name;

console.log(event);

if (followedUserId && followedScreenName) {
alert('GOOD follow');
return;
}

alert('BAD follow')
}
);

twttr.events.bind(
'retweet',
function(event) {
var retweetedTweetId = event.data.source_tweet_id;

if (retweetedTweetId) {
alert('GOOD retweet');
return;
}

alert('BAD retweet');
}
);
});

</script>

</html>
03:12
console.log(event);
03:13
У вас так?
В
03:14
Виталий
Ничего не происходит, все время BAD и да, дата пустая
DE
03:14
Denis Efremov
Сделайте скрин
03:14
Ошибки какие рядом?
03:14
Такое есть?
В
03:15
Виталий
Нет такого
DE
03:16
Denis Efremov
А что есть?
В
03:16
Виталий
{}
region
:
"follow"
target
:
iframe#twitter-widget-0.twitter-follow-button.twitter-follow-button-rendered
type
:
"follow"
proto
:
Object
DE
03:19
Denis Efremov
Вы можете сделать СКРИНШОТ?
03:19
Так не понятно
В
03:20
Виталий
DE
03:21
Denis Efremov
А вторая?
03:21
Вторую разверните
В
03:22
Виталий
то же самое
03:22
абсолютно
DE
03:22
Denis Efremov
Скорее всего ему не нравится localhost
В
03:23
Виталий
У вас все нормально?
DE
03:23
Denis Efremov
Ща
03:28
Не, потому что это iframe
В
03:29
Виталий
то есть нет решений?
DE
03:29
Denis Efremov
Есть. Но их надо искать
03:30
А это - еще время
В
03:30
Виталий
Завтра свяжусь с вами и обсудим тогда
DE
03:31
Denis Efremov
Давайте. Только я целый день на работе.
03:31
За час будьте добры закиньте. Вам какой способ оплаты удобнее?
В
03:33
Виталий
Денис, без обид, но я не увидел ничего вразумительного. Вы дейсвительно больше часа выясняли, что это iframe?
DE
03:34
Denis Efremov
Эээм
03:34
Вы хорошо подумали?
03:35
Это вы больше часа выясняли где консоль
03:35
Если вы отказываетесь платить. Я шарю этот диалог в чат
03:36
И не нужны мне ваши копейки
03:36
Пусть люди решают кто прав
В
03:38
Виталий
Я отказываюсь платить сейчас, потому что задача не выполнена, я готов платить за решение. Пожалуйста расшарьте, только весь диалог полностью, без вырезов.
03:38
И откровенно говоря, я даже прогресса не вижу.
DE
03:39
Denis Efremov
Естественно весь.
03:39
Всего хорошего